package stereoAutoconfig.soundsystem;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * @author XiaoDongLei
 * @Package com.vonzhou.springinaction.knights
 * @date 2018/3/24
 * @Description: 自动化装配bean
 *
 * 不过，组件扫描默认是不启用的。我们还需要显式配置一下Spring，从而命令它去寻找带有@Component注解的类，并为其创建bean。
 * <p>
 * CDPlayerConfig类并没有显式地声明任何bean，只不过它使用了@ComponentScan注解，这个注解能够在Spring中启用组件扫描。
 *
 *
 * 1、@ComponentScan注解：如果没有其他配置的话，@ComponentScan默认会扫描与配置类相同的包。
 * 因为CDPlayerConfig类位于soundsystem包中，因此Spring将会扫描这个包以及这个包下的所有子包，查找带有@Component注解的类。这样的话，就能发现CompactDisc接口（实现类为SgtPeppers），并且会在Spring中自动为其创建一个bean。
 *
 *
 *
 * 2、@Configuration注解：@Configuration注解表明这个类是一个配置类，该类应该包含在Spring应用上下文中如何创建bean的细节。
 * 2.1、有@Configuration注解的类，而在XML配置中，这意味着要创建一个XML文件，并且要以<beans>元素为根。
 *
 * 注意：使用@ComponentScan注解：Spring将会扫描这个包以及这个包下的所有子包，查找带有@Component注解的类。这样的话，就能发现CompactDisc接口，并且会在Spring中自动为其创建一个bean。
 */
@Configuration
@ComponentScan
public class CDPlayerConfig {
}
